Micron Document
`:top
Un `!compilateur Java`! est un `F33f`_`[compilateur`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Compilateur]`_`f pour le `F33f`_`[langage de programmation Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_(langage)]`_`f[Quoi ?]. Le format de sortie le plus courant pour un compilateur Java est des fichiers .class contenant le `F33f`_`[bytecode`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Bytecode]`_`f Java plate-forme agnostique. Il existe aussi des compilateurs produisant du `F33f`_`[code machine`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Code_machine]`_`f optimisé pour une combinaison `F33f`_`[matériel`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Matériel_informatique]`_`f/`F33f`_`[système d'exploitation`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Système_d'exploitation]`_`f particulière.

La `F33f`_`[machine virtuelle Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Machine_virtuelle_Java]`_`f (JVM) charge les fichiers .class et interprète le bytecode ou le `F33f`_`[compile à la volée`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Compilation_à_la_volée]`_`f et peut également l'optimiser en utilisant la compilation dynamique.

>>Contents

• `F0af`_`[Exemples de compilateurs java`#exemples-de-compilateurs-java]`_`f
• `F0af`_`[Autres`#autres]`_`f
• `F0af`_`[Historique et perspectives`#historique-et-perspectives]`_`f
• `F0af`_`[Fonctionnement et théorie`#fonctionnement-et-th-orie]`_`f
• `F0af`_`[Apports et limitations`#apports-et-limitations]`_`f
• `F0af`_`[Apports`#apports]`_`f
• `F0af`_`[Limitations`#limitations]`_`f
• `F0af`_`[Standardisation et normalisation`#standardisation-et-normalisation]`_`f
• `F0af`_`[Usages et applications`#usages-et-applications]`_`f
• `F0af`_`[Aspects économiques et sociaux`#aspects-conomiques-et-sociaux]`_`f
• `F0af`_`[Notes et références`#notes-et-r-f-rences]`_`f
• `F0af`_`[Bibliographie`#bibliographie]`_`f
• `F0af`_`[Annexes`#annexes]`_`f
• `F0af`_`[Articles connexes`#articles-connexes]`_`f
• `F0af`_`[Liens externes`#liens-externes]`_`f
• `F0af`_`[Vocabulaire et notations`#vocabulaire-et-notations]`_`f

-─

>>Exemples de compilateurs java

• `F33f`_`[javac`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Javac]`_`f, le compilateur Java de `F33f`_`[Sun Microsystems`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Sun_Microsystems]`_`f, livré avec le `F33f`_`[JDK`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=JDK]`_`f.
• `F33f`_`[ECJ`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=ECJ]`_`f (Eclipse Compiler for Java), le compilateur Java intégré à l'`F33f`_`[environnement de développement intégré`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Environnement_de_développement_intégré]`_`f `F33f`_`[Eclipse`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Eclipse_(logiciel)]`_`f.
• `F33f`_`[GCJ`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=GCJ]`_`f (Gnu Compiler for Java), inclus dans la `F33f`_`[GNU Compiler Collection`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=GNU_Compiler_Collection]`_`f (GCC), qui génère du `F33f`_`[code machine`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Code_machine]`_`f grâce au `F33f`_`[back-end`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Back-end]`_`f de GCC.
• `F33f`_`[Jikes`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Jikes]`_`f, un projet `F33f`_`[open source`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Open_source]`_`f de compilateur Java créé par `F33f`_`[IBM`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=IBM]`_`f.

>>Autres

• `F33f`_`[JavaCC`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=JavaCC]`_`f, un `F33f`_`[compilateur de compilateurs`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Compilateur_de_compilateur]`_`f pour Java.

>>Historique et perspectives

Le premier compilateur java a été celui de Sun, diffusé avec le langage Java.

>>Fonctionnement et théorie

Les compilateurs Java sont en général distribués en tant qu'outils en `F33f`_`[ligne de commande`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_en_ligne_de_commande]`_`f, même si des IDE existent. Il existe également une Java Compiler API (JSR 199).

Les compilateurs Java ont la particularité de compiler le langage Java en un `F33f`_`[bytecode Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Bytecode_Java]`_`f.

>>Apports et limitations

>>>Apports

Le compilateur Java offre de l'interopérabilité et de la portabilité, tant au niveau du code source, du code binaire produit que de son invocation.

Certains compilateurs Java sont d'usage gratuit. D'autres sont open source.

>>>Limitations

>>Standardisation et normalisation

Les compilateurs Java doivent respecter les spécifications publiées par Sun microsystems. Il s'agit des spécifications `*Java Language Specification`* et `*The Java Virtual Machine Specification`*`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f].

En plus de son travail de compilation, le compilateur peut traiter les annotations, en accord avec la `*JSR 269: Pluggable Annotation Processing API`*`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f].

>>Usages et applications

>>Aspects économiques et sociaux

>>Notes et références

`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f (en) « `*Java Language and Virtual Machine Specifications`* ».
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f (en) « `*JSR 269: Pluggable Annotation Processing API`* ».

>>Bibliographie

>>Annexes

>>>Articles connexes

>>>Liens externes

>>>Vocabulaire et notations

• Portail de la programmation informatique

`c`F0af`_`[↑ Back to top`#top]`_`f`a